For the purpose of clarity, we will call the individual phases as follows:
You can map some of Outputs and Notification Inputs, or none, or all of them – all these approaches are valid, because it is up to you how you handle the data that comes from the mapping source. With Inputs (and Notification Outputs), you must, however, obey the rules that exist for every mapping operation, and map the proper combination of them, so that the mapping source can receive the data it expects.
The following table shows how (depending on the item mapping kind) the Read, Write and Subscribe operations treat their mapping arguments for OPC-DA item mappings.
Mapping Operation | |||
Mapping Kind | Read | Write | Subscribe |
Result | Output | Output | Notification Input |
ErrorId | Output | Output | Notification Input |
Exception | Output | Output | Notification Input |
ErrorMessage | Output | Output | Notification Input |
StatusInfo | Output | Output | Notification Input |
Vtq | Output | Input | Notification Input |
Value | Output | Input | Notification Input |
Timestamp | Output | Input | Notification Input |
TimestampLocal | Output | Input | Notification Input |
Quality | Output | Input | Notification Input |
The Write operation in OPC-DA can either write just a value, or a value/timestamp/quality triple. Only following combinations of inputs are therefore valid for the OPC-DA Write operation:
Vtq | Value | Timestamp or TimestampLocal | Quality | Outcome |
✔ | Value/timestamp/quality triple is written. | |||
✔ | ✔ | ✔ | ||
✔ | Just the value is written. |
For OPC-DA property mappings, there is just one mapping operation (Get), and the corresponding table is trivial:
Mapping Operation | |
Mapping Kind | Get |
Result | Output |
ErrorId | Output |
Exception | Output |
ErrorMessage | Output |
StatusInfo | Output |
Value | Output |
The following table shows how (depending on the item mapping kind) the Read, Write and Subscribe operations treat their mapping arguments for OPC-UA data mappings.
Mapping Operation | |||
Mapping Kind | Read | Write | Subscribe |
Result | Output | Output | Notification Input |
ErrorId | Output | Output | Notification Input |
Exception | Output | Output | Notification Input |
ErrorMessage | Output | Output | Notification Input |
StatusInfo | Output | Output | Notification Input |
AttributeData | Output | Input | Notification Input |
Value | Output | Input | Notification Input |
ServerTimestamp | Output | Input | Notification Input |
ServerTimestampLocal | Output | Input | Notification Input |
SourceTimestamp | Output | Input | Notification Input |
SourceTimestampLocal | Output | Input | Notification Input |
StatusCode | Output | Input | Notification Input |
The Write operation in OPC-UA can either write just a value, or a value/server timestamp/source timestamp/status code quadruple. Only following combinations of inputs are therefore valid for the OPC-UA Write operation:
AttributeData | Value | ServerTimestamp or ServerTimestampLocal | SourceTimestamp or SourceTimestampLocal | StatusCode | Outcome |
✔ | Value/server timestamp/source timestamp/status code quadruple is written. | ||||
✔ | ✔ | ✔ | ✔ | ||
✔ | Just the value is written. |